home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / edit / thesrc20.zip / command.h < prev    next >
C/C++ Source or Header  |  1995-01-26  |  38KB  |  395 lines

  1. /*
  2.  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
  3.  * Copyright (C) 1991-1995 Mark Hessling
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License as
  7.  * published by the Free Software Foundation; either version 2 of
  8.  * the License, or any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13.  * General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to:
  17.  *
  18.  *    The Free Software Foundation, Inc.
  19.  *    675 Mass Ave,
  20.  *    Cambridge, MA 02139 USA.
  21.  *
  22.  *
  23.  * If you make modifications to this software that you feel increases
  24.  * it usefulness for the rest of the community, please email the
  25.  * changes, enhancements, bug fixes as well as any and all ideas to me.
  26.  * This software is going to be maintained and enhanced as deemed
  27.  * necessary by the community.
  28.  *
  29.  * Mark Hessling                     email: M.Hessling@gu.edu.au
  30.  * 36 David Road                     Phone: +61 7 849 7731
  31.  * Holland Park                      Fax:   +61 7 875 5314
  32.  * QLD 4121
  33.  * Australia
  34.  */
  35.  
  36. /*
  37. $Id: command.h 2.0 1995/01/26 16:30:06 MH Release MH $
  38. */
  39.  
  40. struct commands
  41. {
  42.  CHARTYPE *text;
  43.  unsigned short min_len;
  44.  int funkey;
  45. #ifdef PROTO
  46.  short (*function)(CHARTYPE *);
  47. #else
  48.  short (*function)();
  49. #endif
  50.  bool valid_profile_command;
  51.  bool set_command;
  52.  bool sos_command;
  53.  bool strip_param;
  54.  bool valid_in_readonly;
  55.  bool edit_command;
  56.  CHARTYPE *params;
  57. };
  58. typedef struct commands COMMAND;
  59.  
  60. #include "proto.h"
  61.  
  62. /*---------------------- *** IMPORTANT *** ----------------------------*/
  63. /* Make sure that there is no chance two or more commands can be       */
  64. /* matched based on number of significant charcters.                   */
  65. /*---------------------- *** IMPORTANT *** ----------------------------*/
  66. /*                                                             Prof / Set / SOS /strip/ RO  /edit / */
  67. COMMAND command[] =
  68. {
  69. #if defined(DOS) || defined(OS2)
  70.  {(CHARTYPE *)"cursor",      0,  KEY_CURR,        Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"right"},  /* comm1.c */
  71.  {(CHARTYPE *)"cursor",      0,  KEY_CURL,        Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"left"},  /* comm1.c */
  72.  {(CHARTYPE *)"cursor",      0,  KEY_CURD,        Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"down"},  /* comm1.c */
  73.  {(CHARTYPE *)"cursor",      0,  KEY_CURU,        Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"up"},  /* comm1.c */
  74. #else
  75.  {(CHARTYPE *)"cursor",      0,  KEY_RIGHT,       Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"right"},  /* comm1.c */
  76.  {(CHARTYPE *)"cursor",      0,  KEY_LEFT,        Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"left"},  /* comm1.c */
  77.  {(CHARTYPE *)"cursor",      0,  KEY_DOWN,        Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"down"},  /* comm1.c */
  78.  {(CHARTYPE *)"cursor",      0,  KEY_UP,          Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"up"},  /* comm1.c */
  79. #endif
  80.  {(CHARTYPE *)"add",         1,  (-1),            Add,         TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"1"}, /* comm1.c */
  81.  {(CHARTYPE *)"all",         3,  (-1),            All,         TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  82.  {(CHARTYPE *)"arbchar",     3,  (-1),            Arbchar,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  83.  {(CHARTYPE *)"autosave",    2,  (-1),            Autosave,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  84. #if defined(DOS) || defined(OS2)
  85.  {(CHARTYPE *)"backward",    2,  KEY_PGUP,        Backward,    TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm1.c */
  86. #else
  87.  {(CHARTYPE *)"backward",    2,  KEY_PPAGE,       Backward,    TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm1.c */
  88.  {(CHARTYPE *)"backward",    2,  KEY_PrevScrn,    Backward,    TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm1.c */
  89. #endif
  90.  {(CHARTYPE *)"backup",      4,  (-1),            Backup,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  91.  {(CHARTYPE *)"beep",        4,  (-1),            BeepSound,   TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  92.  {(CHARTYPE *)"bottom",      3,  (-1),            Bottom,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  93.  {(CHARTYPE *)"cancel",      3,  (-1),            Cancel,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  94.  {(CHARTYPE *)"case",        4,  (-1),            Case,        TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  95.  {(CHARTYPE *)"ccancel",     2,  (-1),            Ccancel,     TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  96.  {(CHARTYPE *)"change",      1,  (-1),            Change,      TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm1.c */
  97.  {(CHARTYPE *)"clearscreen", 6,  (-1),            Clearscreen, TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  98.  {(CHARTYPE *)"clock",       5,  (-1),            Clock,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  99. #if defined(DOS) || defined(OS2)
  100.  {(CHARTYPE *)"cmatch",      0,  KEY_F7,          Cmatch,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  101. #else
  102.  {(CHARTYPE *)"cmatch",      0,  KEY_F(7),        Cmatch,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  103. #endif
  104.  {(CHARTYPE *)"cmdarrows",   4,  (-1),            Cmdarrows,   TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  105.  {(CHARTYPE *)"cmdline",     3,  (-1),            Cmdline,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  106.  {(CHARTYPE *)"cmsg",        4,  (-1),            Cmsg,        FALSE,FALSE,FALSE,FALSE,TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  107.  {(CHARTYPE *)"command",     7,  (-1),            THECommand,  TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  108.  {(CHARTYPE *)"colour",      6,  (-1),            Colour,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  109.  {(CHARTYPE *)"color",       5,  (-1),            Colour,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  110.  {(CHARTYPE *)"compat",      6,  (-1),            Compat,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  111.  {(CHARTYPE *)"copy",        4,  (-1),            Copy,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm1.c */
  112. #if defined(DOS) || defined(OS2)
  113.  {(CHARTYPE *)"control_char",0,  KEY_F12,         Control_char,FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm1.c */
  114.  {(CHARTYPE *)"copy",        0,  KEY_A_c,         Copy,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block reset"},  /* comm1.c */
  115.  {(CHARTYPE *)"copy",        0,  KEY_A_k,         Copy,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block"},  /* comm1.c */
  116.  {(CHARTYPE *)"cursor",      3,  KEY_HOME,        Cursor,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"home save"},  /* comm1.c */
  117. #else
  118.  {(CHARTYPE *)"control_char",0,  KEY_F(6),        Control_char,FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm1.c */
  119.  {(CHARTYPE *)"copy",        0,  KEY_C_c,         Copy,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block reset"},  /* comm1.c */
  120.  {(CHARTYPE *)"copy",        0,  KEY_C_k,         Copy,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block"},  /* comm1.c */
  121.  {(CHARTYPE *)"cursor",      3,  KEY_HOME,        Cursor,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"home save"},  /* comm1.c */
  122.  {(CHARTYPE *)"cursor",      0,  KEY_Do,          Cursor,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"home save"},  /* comm1.c */
  123. #endif
  124.  {(CHARTYPE *)"curline",     4,  (-1),            Curline,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  125.  {(CHARTYPE *)"define",      3,  (-1),            Define,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  126.  {(CHARTYPE *)"delete",      3,  (-1),            DeleteLine,  TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"1"}, /* comm1.c */
  127. #if defined(DOS) || defined(OS2)
  128.  {(CHARTYPE *)"delete",      0,  KEY_A_g,         DeleteLine,  FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block"}, /* comm1.c */
  129. #else
  130.  {(CHARTYPE *)"delete",      0,  KEY_C_g,         DeleteLine,  FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block"}, /* comm1.c */
  131. #endif
  132.  {(CHARTYPE *)"directory",   3,  (-1),            Directory,   FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  133.  {(CHARTYPE *)"dirinclude",  4,  (-1),            Dirinclude,  TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"*"}, /* commset1.c */
  134.  {(CHARTYPE *)"ls",          2,  (-1),            Directory,   FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm1.c */
  135.  {(CHARTYPE *)"display",     4,  (-1),            Display,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  136.  {(CHARTYPE *)"down",        1,  (-1),            Next,        TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm3.c */
  137.  {(CHARTYPE *)"duplicate",   3,  (-1),            Duplicate,   TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  138. #if defined(DOS) || defined(OS2)
  139.  {(CHARTYPE *)"duplicate",   0,  KEY_A_d,         Duplicate,   TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"1 BLOCK"},  /* comm2.c */
  140. #else
  141.  {(CHARTYPE *)"duplicate",   0,  KEY_C_d,         Duplicate,   TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"1 BLOCK"},  /* comm2.c */
  142.  {(CHARTYPE *)"enter",       0,  KEY_C_m,         Enter,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  143.  {(CHARTYPE *)"enter",       0,  KEY_ENTER,       Enter,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  144. #endif
  145. #if defined(USE_EXTCURSES)
  146.  {(CHARTYPE *)"enter",       0,  KEY_NEWL,        Enter,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  147. #else
  148.  {(CHARTYPE *)"enter",       0,  KEY_RETURN,      Enter,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  149. #endif
  150.  {(CHARTYPE *)"emsg",        4,  (-1),            Emsg,        TRUE, FALSE,FALSE,FALSE,TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  151.  {(CHARTYPE *)"eolout",      4,  (-1),            Eolout,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  152.  {(CHARTYPE *)"etmode",      6,  (-1),            Etmode,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  153.  {(CHARTYPE *)"expand",      3,  (-1),            Expand,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  154.  {(CHARTYPE *)"extract",     3,  (-1),            Extract,     TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  155.  {(CHARTYPE *)"ffile",       2,  (-1),            Ffile,       TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  156. #if defined(DOS) || defined(OS2)
  157.  {(CHARTYPE *)"file",        4,  KEY_F3,          File,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  158.  {(CHARTYPE *)"fillbox",     4,  KEY_A_f,         Fillbox,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  159. #else
  160.  {(CHARTYPE *)"file",        4,  KEY_F(3),        File,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  161.  {(CHARTYPE *)"file",        0,  KEY_PF3,         File,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  162.  {(CHARTYPE *)"fillbox",     4,  KEY_C_f,         Fillbox,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  163. #endif
  164. #if defined(DOS) || defined(OS2)
  165.  {(CHARTYPE *)"forward",     2,  KEY_PGDN,        Forward,     TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm2.c */
  166.  {(CHARTYPE *)"forward",     2,  KEY_C_PGDN,      Forward,     TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"*"}, /* comm2.c */
  167. #else
  168.  {(CHARTYPE *)"forward",     2,  KEY_NPAGE,       Forward,     TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm2.c */
  169.  {(CHARTYPE *)"forward",     2,  KEY_NextScrn,    Forward,     TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm2.c */
  170. #endif
  171.  {(CHARTYPE *)"get",         3,  (-1),            Get,         TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  172. #if defined(DOS) || defined(OS2)
  173.  {(CHARTYPE *)"help",        4,  KEY_F1,          Help,        FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  174. #else
  175.  {(CHARTYPE *)"help",        4,  KEY_F(1),        Help,        FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  176.  {(CHARTYPE *)"help",        0,  KEY_PF1,         Help,        FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm2.c */
  177. #endif
  178.  {(CHARTYPE *)"hex",         3,  (-1),            Hex,         TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  179.  {(CHARTYPE *)"hexdisplay",  7,  (-1),            Hexdisplay,  TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  180.  {(CHARTYPE *)"hexshow",     4,  (-1),            Hexshow,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  181.  {(CHARTYPE *)"idline",      2,  (-1),            Idline,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  182.  {(CHARTYPE *)"impmacro",    5,  (-1),            Impmacro,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  183.  {(CHARTYPE *)"impos",       5,  (-1),            Impos,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  184.  {(CHARTYPE *)"impcmscp",    3,  (-1),            Impos,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  185.  {(CHARTYPE *)"input",       1,  (-1),            Input,       TRUE, FALSE,FALSE,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm2.c */
  186. #if defined(DOS) || defined(OS2)
  187.  {(CHARTYPE *)"insertmode",  7,  KEY_INS,         Insertmode,  TRUE, TRUE, FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"toggle"},  /* commset1.c */
  188.  {(CHARTYPE *)"locate",      1,  KEY_S_F1,        Locate,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  189. #else
  190.  {(CHARTYPE *)"insertmode",  7,  KEY_IC,          Insertmode,  TRUE, TRUE, FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"toggle"},  /* commset1.c */
  191.  {(CHARTYPE *)"locate",      1,  KEY_F(11),       Locate,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  192. #endif
  193.  {(CHARTYPE *)"left",        2,  (-1),            Left,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm3.c */
  194.  {(CHARTYPE *)"linend",      5,  (-1),            Linend,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  195.  {(CHARTYPE *)"lowercase",   3,  (-1),            Lowercase,   TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm3.c */
  196.  {(CHARTYPE *)"macro",       5,  (-1),            Macro,       TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  197.  {(CHARTYPE *)"macroext",    6,  (-1),            Macroext,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  198.  {(CHARTYPE *)"macropath",   6,  (-1),            Macropath,   TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  199.  {(CHARTYPE *)"margins",     3,  (-1),            Margins,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  200.  {(CHARTYPE *)"mark",        4,  (-1),            Mark,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm3.c */
  201.  {(CHARTYPE *)"modify",      3,  (-1),            Modify,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  202. #if defined(DOS) || defined(OS2)
  203.  {(CHARTYPE *)"mark",        0,  KEY_A_l,         Mark,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"line"},  /* comm3.c */
  204.  {(CHARTYPE *)"mark",        0,  KEY_A_b,         Mark,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"box"},  /* comm3.c */
  205.  {(CHARTYPE *)"move",        4,  KEY_A_m,         THEMove,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block reset"},  /* comm3.c */
  206.  {(CHARTYPE *)"nextwindow",  5,  KEY_F2,          Nextwindow,  FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""}, /* comm3.c */
  207.  {(CHARTYPE *)"overlaybox",  8,  KEY_A_o,         Overlaybox,  FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""}, /* comm3.c */
  208. #else
  209.  {(CHARTYPE *)"mark",        0,  KEY_C_l,         Mark,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"line"},  /* comm3.c */
  210.  {(CHARTYPE *)"mark",        0,  KEY_C_b,         Mark,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"box"},  /* comm3.c */
  211.  {(CHARTYPE *)"move",        4,  KEY_C_v,         THEMove,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"block reset"},  /* comm3.c */
  212.  {(CHARTYPE *)"nextwindow",  5,  KEY_F(2),        Nextwindow,  FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  213.  {(CHARTYPE *)"nextwindow",  5,  KEY_PF2,         Nextwindow,  FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  214.  {(CHARTYPE *)"overlaybox",  8,  KEY_C_o,         Overlaybox,  FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm3.c */
  215. #endif
  216.  {(CHARTYPE *)"msg",         3,  (-1),            Msg,         TRUE, FALSE,FALSE,FALSE,TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  217.  {(CHARTYPE *)"msgline",     4,  (-1),            Msgline,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  218.  {(CHARTYPE *)"msgmode",     4,  (-1),            Msgmode,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  219.  {(CHARTYPE *)"newlines",    4,  (-1),            Newlines,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  220.  {(CHARTYPE *)"next",        1,  (-1),            Next,        TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm3.c */
  221.  {(CHARTYPE *)"nomsg",       5,  (-1),            Nomsg,       TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  222.  {(CHARTYPE *)"nondisp",     4,  (-1),            Nondisp,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset1.c */
  223.  {(CHARTYPE *)"nop",         3,  (-1),            Nop,         FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  224.  {(CHARTYPE *)"number",      3,  (-1),            Number,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  225.  {(CHARTYPE *)"osnowait",    3,  (-1),            Osnowait,    FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  226.  {(CHARTYPE *)"osquiet",     3,  (-1),            Osquiet,     FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  227.  {(CHARTYPE *)"os",          2,  (-1),            Os,          FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  228.  {(CHARTYPE *)"dosnowait",   4,  (-1),            Osnowait,    FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  229.  {(CHARTYPE *)"dosquiet",    4,  (-1),            Osquiet,     FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  230.  {(CHARTYPE *)"dos",         3,  (-1),            Os,          FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  231.  {(CHARTYPE *)"!",           1,  (-1),            Os,          FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm3.c */
  232.  {(CHARTYPE *)"pending",     4,  (-1),            Pending,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  233.  {(CHARTYPE *)"point",       1,  (-1),            Point,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  234. #if defined(DOS) || defined(OS2)
  235.  {(CHARTYPE *)"point",       0,  KEY_C_F11,       Point,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)".a"},/* commset2.c */
  236.  {(CHARTYPE *)"locate",      0,  KEY_C_F12,       Locate,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)".a"},/* commset2.c */
  237. #else
  238.  {(CHARTYPE *)"point",       0,  KEY_F(31),       Point,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)".a"},/* commset2.c */
  239.  {(CHARTYPE *)"locate",      0,  KEY_F(32),       Locate,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)".a"},/* commset2.c */
  240. #endif
  241.  {(CHARTYPE *)"position",    3,  (-1),            Position,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  242.  {(CHARTYPE *)"prefix",      3,  (-1),            Prefix,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  243.  {(CHARTYPE *)"printer",     7,  (-1),            THEPrinter,  TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  244.  {(CHARTYPE *)"print",       2,  (-1),            Print,       TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  245.  {(CHARTYPE *)"put",         3,  (-1),            Put,         TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  246.  {(CHARTYPE *)"putd",        4,  (-1),            Putd,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  247. #if defined(DOS) || defined(OS2)
  248.  {(CHARTYPE *)"qquit",       2,  KEY_S_F3,        Qquit,       TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  249. #else
  250.  {(CHARTYPE *)"qquit",       2,  KEY_F(13),       Qquit,       TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  251. #endif
  252.  {(CHARTYPE *)"quit",        4,  (-1),            Quit,        TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  253.  {(CHARTYPE *)"query",       1,  (-1),            Query,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  254. #if defined(DOS) || defined(OS2)
  255.  {(CHARTYPE *)"recover",     3,  KEY_F8,          Recover,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  256. #else
  257.  {(CHARTYPE *)"recover",     3,  KEY_F(8),        Recover,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  258. #endif
  259.  {(CHARTYPE *)"readv",       5,  (-1),            Readv,       TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  260.  {(CHARTYPE *)"redraw",      6,  KEY_C_r,         Redraw,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  261.  {(CHARTYPE *)"refresh",     7,  (-1),            THERefresh,  FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  262.  {(CHARTYPE *)"repeat",      4,  (-1),            Repeat,      TRUE, FALSE,FALSE,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  263.  {(CHARTYPE *)"replace",     1,  (-1),            Replace,     TRUE, FALSE,FALSE,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  264.  {(CHARTYPE *)"reprofile",   6,  (-1),            Reprofile,   TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  265.  {(CHARTYPE *)"reserved",    5,  (-1),            Reserved,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  266.  {(CHARTYPE *)"reset",       3,  (-1),            Reset,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  267. #if defined(DOS) || defined(OS2)
  268.  {(CHARTYPE *)"reset",       0,  KEY_A_u,         Reset,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"block"},  /* comm4.c */
  269. #else
  270.  {(CHARTYPE *)"reset",       0,  KEY_C_u,         Reset,       FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"block"},  /* comm4.c */
  271. #endif
  272.  {(CHARTYPE *)"rexxoutput",  7,  (-1),            Rexxoutput,  TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  273.  {(CHARTYPE *)"rgtleft",     7,  (-1),            Rgtleft,     TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  274.  {(CHARTYPE *)"right",       2,  (-1),            Right,       TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  275.  {(CHARTYPE *)"=",           1,  (-1),            Reexecute,   TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm5.c */
  276.  {(CHARTYPE *)"?",           1,  (-1),            Retrieve,    FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm5.c */
  277.  {(CHARTYPE *)"save",        4,  (-1),            Save,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  278.  {(CHARTYPE *)"scale",       5,  (-1),            Scale,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  279.  {(CHARTYPE *)"schange",     3,  (-1),            Schange,     FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  280.  {(CHARTYPE *)"screen",      3,  (-1),            THEScreen,   FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  281.  {(CHARTYPE *)"scope",       5,  (-1),            Scope,       TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  282.  {(CHARTYPE *)"select",      3,  (-1),            Select,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  283.  {(CHARTYPE *)"set",         3,  (-1),            Set,         TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  284.  {(CHARTYPE *)"shadow",      4,  (-1),            Shadow,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  285.  {(CHARTYPE *)"shift",       2,  (-1),            Shift,       TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  286.  {(CHARTYPE *)"showkey",     4,  (-1),            ShowKey,     FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  287.  {(CHARTYPE *)"sort",        4,  (-1),            Sort,        TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  288.  {(CHARTYPE *)"sos",         3,  (-1),            Sos,         FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  289.  {(CHARTYPE *)"bottomedge",  7,  (-1),            Sos_bottomedge,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  290.  {(CHARTYPE *)"current",     4,  (-1),            Sos_current, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  291.  {(CHARTYPE *)"endchar",     4,  (-1),            Sos_endchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  292.  {(CHARTYPE *)"execute",     2,  (-1),            Sos_execute, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  293.  {(CHARTYPE *)"firstchar",   7,  (-1),            Sos_firstchar,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  294.  {(CHARTYPE *)"firstcol",    7,  (-1),            Sos_firstcol,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  295.  {(CHARTYPE *)"lastcol",     6,  (-1),            Sos_lastcol, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  296.  {(CHARTYPE *)"leftedge",    5,  (-1),            Sos_leftedge,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  297.  {(CHARTYPE *)"marginl",     7,  (-1),            Sos_marginl, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  298.  {(CHARTYPE *)"marginr",     7,  (-1),            Sos_marginr, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  299.  {(CHARTYPE *)"parindent",   6,  (-1),            Sos_parindent,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  300.  {(CHARTYPE *)"prefix",      3,  (-1),            Sos_prefix,  FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  301.  {(CHARTYPE *)"qcmnd",       2,  (-1),            Sos_qcmnd,   FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  302.  {(CHARTYPE *)"rightedge",   6,  (-1),            Sos_rightedge,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  303.  {(CHARTYPE *)"tabfieldb",   9,  (-1),            Sos_tabfieldb,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  304.  {(CHARTYPE *)"tabfieldf",   8,  (-1),            Sos_tabfieldf,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  305.  {(CHARTYPE *)"topedge",     4,  (-1),            Sos_topedge,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  306.  {(CHARTYPE *)"cursoradj",   7,  KEY_C_a,         Sos_cursoradj,FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  307. #if defined(DOS) || defined(OS2)
  308.  {(CHARTYPE *)"addline",     3,  KEY_F4,          Sos_addline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  309.  {(CHARTYPE *)"delback",     5,  KEY_BKSP,        Sos_delback, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  310.  {(CHARTYPE *)"delchar",     4,  KEY_DEL,         Sos_delchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  311.  {(CHARTYPE *)"delend",      4,  KEY_C_END,       Sos_delend,  FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  312.  {(CHARTYPE *)"delline",     4,  KEY_F9,          Sos_delline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  313.  {(CHARTYPE *)"delword",     4,  KEY_A_w,         Sos_delword, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  314.  {(CHARTYPE *)"doprefix",    5,  KEY_NUMENTER,    Sos_doprefix,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  315.  {(CHARTYPE *)"edit",        4,  KEY_A_x,         Sos_edit,    FALSE,FALSE,TRUE, TRUE, TRUE,TRUE,  (CHARTYPE *)""},  /* commsos.c */
  316.  {(CHARTYPE *)"startendchar",9,  KEY_END,         Sos_startendchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  317.  {(CHARTYPE *)"makecurr",    8,  KEY_F5,          Sos_makecurr,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  318.  {(CHARTYPE *)"tabb",        4,  KEY_S_TAB,       Sos_tabb,    FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  319.  {(CHARTYPE *)"tabf",        3,  KEY_TAB,         Sos_tabf,    FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  320.  {(CHARTYPE *)"tabwordb",    8,  KEY_C_CURL,      Sos_tabwordb,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  321.  {(CHARTYPE *)"tabwordf",    7,  KEY_C_CURR,      Sos_tabwordf,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  322.  {(CHARTYPE *)"undo",        4,  KEY_ESC,         Sos_undo,    FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  323.  {(CHARTYPE *)"split",       2,  KEY_A_s,         Split,       FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"aligned"},  /* comm4.c */
  324.  {(CHARTYPE *)"join",        1,  KEY_A_j,         Join,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"aligned"},  /* comm2.c */
  325.  {(CHARTYPE *)"spltjoin",    8,  KEY_F10,         Spltjoin,    FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  326. #else
  327.  {(CHARTYPE *)"addline",     3,  KEY_F(4),        Sos_addline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  328.  {(CHARTYPE *)"addline",     3,  KEY_PF4,         Sos_addline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  329.  {(CHARTYPE *)"tabb",        4,  (-1),            Sos_tabb,    FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  330. #ifdef OLD_DELBACK_DELCHAR
  331.  {(CHARTYPE *)"delback",     4,  127,             Sos_delback, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  332.  {(CHARTYPE *)"delchar",     4,  8,               Sos_delchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  333.  {(CHARTYPE *)"delchar",     4,  KEY_DC,          Sos_delchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  334. #else
  335.  {(CHARTYPE *)"delback",     4,  KEY_C_h,         Sos_delback, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  336.  {(CHARTYPE *)"delback",     4,  KEY_BACKSPACE,   Sos_delback, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  337.  {(CHARTYPE *)"delchar",     4,  Del,             Sos_delchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  338.  {(CHARTYPE *)"delchar",     4,  127,             Sos_delchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  339.  {(CHARTYPE *)"delchar",     4,  KEY_DC,          Sos_delchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  340. #endif
  341.  {(CHARTYPE *)"delend",      4,  KEY_C_e,         Sos_delend,  FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  342.  {(CHARTYPE *)"delline",     4,  KEY_F(9),        Sos_delline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  343.  {(CHARTYPE *)"delword",     4,  KEY_C_w,         Sos_delword, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  344.  {(CHARTYPE *)"doprefix",    5,  KEY_C_p,         Sos_doprefix,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  345.  {(CHARTYPE *)"edit",        4,  KEY_C_x,         Sos_edit,    FALSE,FALSE,TRUE, TRUE, TRUE,TRUE,  (CHARTYPE *)""},  /* commsos.c */
  346.  {(CHARTYPE *)"startendchar",9,  KEY_F(20),       Sos_startendchar, FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  347.  {(CHARTYPE *)"makecurr",    8,  KEY_F(5),        Sos_makecurr,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  348. #if defined(USE_EXTCURSES)
  349.  {(CHARTYPE *)"tabf",        3,  KEY_TAB,         Sos_tabf,    FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  350. #else
  351.  {(CHARTYPE *)"tabf",        3,  KEY_C_i,         Sos_tabf,    FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  352. #endif
  353.  {(CHARTYPE *)"tabwordb",    8,  KEY_F(18),       Sos_tabwordb,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  354.  {(CHARTYPE *)"tabwordf",    7,  KEY_F(19),       Sos_tabwordf,FALSE,FALSE,TRUE, TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commsos.c */
  355.  {(CHARTYPE *)"undo",        4,  KEY_C_q,         Sos_undo,    FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  356.  {(CHARTYPE *)"split",       2,  KEY_C_s,         Split,       FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"aligned"},  /* comm4.c */
  357.  {(CHARTYPE *)"join",        1,  KEY_C_j,         Join,        FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)"aligned"},  /* comm2.c */
  358.  {(CHARTYPE *)"spltjoin",    8,  KEY_F(10),       Spltjoin,    FALSE,FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  359. #endif
  360.  {(CHARTYPE *)"lineadd",     5,  (-1),            Sos_addline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  361.  {(CHARTYPE *)"linedel",     5,  (-1),            Sos_delline, FALSE,FALSE,TRUE, TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commsos.c */
  362.  {(CHARTYPE *)"ssave",       2,  (-1),            Ssave,       TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm4.c */
  363.  {(CHARTYPE *)"status",      4,  (-1),            Status,      TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  364.  {(CHARTYPE *)"statusline",  7,  (-1),            Statusline,  TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  365.  {(CHARTYPE *)"stay",        4,  (-1),            Stay,        TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  366.  {(CHARTYPE *)"synonym",     3,  (-1),            Synonym,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  367.  {(CHARTYPE *)"suspend",     4,  KEY_C_z,         Suspend,     FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm4.c */
  368. #if defined(DOS) || defined(OS2)
  369.  {(CHARTYPE *)"tabpre",      0,  KEY_NUMPLUS,     Tabpre,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm5.c */
  370. #else
  371.  {(CHARTYPE *)"tabpre",      0,  KEY_F(12),       Tabpre,      FALSE,FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm5.c */
  372. #endif
  373.  {(CHARTYPE *)"tabline",     4,  (-1),            Tabline,     TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  374.  {(CHARTYPE *)"tabkey",      4,  (-1),            Tabkey,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  375.  {(CHARTYPE *)"tabs",        4,  (-1),            Tabs,        TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  376.  {(CHARTYPE *)"tabsin",      5,  (-1),            Tabsin,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  377.  {(CHARTYPE *)"tabsout",     5,  (-1),            Tabsout,     TRUE, TRUE, FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* commset2.c */
  378.  {(CHARTYPE *)"text",        4,  (-1),            Text,        FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,(CHARTYPE *)""},  /* comm5.c */
  379. #if defined(DOS) || defined(OS2)
  380.  {(CHARTYPE *)"top",         3,  KEY_C_PGUP,      Top,         TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm5.c */
  381. #else
  382.  {(CHARTYPE *)"top",         3,  (-1),            Top,         TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* comm5.c */
  383. #endif
  384.  {(CHARTYPE *)"typeahead",   5,  (-1),            THETypeahead,TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  385.  {(CHARTYPE *)"up",          1,  (-1),            Up,          TRUE, FALSE,FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)"1"}, /* comm5.c */
  386.  {(CHARTYPE *)"uppercase",   3,  (-1),            Uppercase,   TRUE, FALSE,FALSE,TRUE, FALSE,FALSE,(CHARTYPE *)""},  /* comm5.c */
  387.  {(CHARTYPE *)"wordwrap",    5,  (-1),            Wordwrap,    TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  388.  {(CHARTYPE *)"edit",        1,  (-1),            Xedit,       TRUE, FALSE,FALSE,TRUE, TRUE,TRUE,  (CHARTYPE *)""},  /* comm5.c */
  389.  {(CHARTYPE *)"xedit",       1,  (-1),            Xedit,       TRUE, FALSE,FALSE,TRUE, TRUE,TRUE,  (CHARTYPE *)""},  /* comm5.c */
  390.  {(CHARTYPE *)"the",         3,  (-1),            Xedit,       TRUE, FALSE,FALSE,TRUE, TRUE,TRUE,  (CHARTYPE *)""},  /* comm5.c */
  391.  {(CHARTYPE *)"verify",      1,  (-1),            Verify,      TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  392.  {(CHARTYPE *)"zone",        1,  (-1),            Zone,        TRUE, TRUE, FALSE,TRUE, TRUE,FALSE, (CHARTYPE *)""},  /* commset2.c */
  393.  {NULL,                      0,  (-1),            NULL,        FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,(CHARTYPE *)""}
  394. };
  395.